Virtual repository complex content model

ABSTRACT

A memory for storing data for access by an application program being executed on a computer system, comprising a data structure stored in said memory, the data structure including or referring to: a name, a content repository identifier, a plurality of properties, a plurality of property definitions associated with the plurality of properties, and wherein the data structure is logically part of a virtual content repository (VCR), and wherein the VCR represents at least one content repository.

CLAIM OF PRIORITY

[0001] This application claims priority from the following application,which is hereby incorporated by reference in its entirety:

[0002] SYSTEM AND METHOD FOR A VIRTUAL CONTENT REPOSITORY, U.S.Provisional Patent Application No. 60/386,487, Inventors: James Owen, etal., filed on Feb. 20, 2003. (Attorney's Docket No. BEAS-1360US0)

[0003] SYSTEMS AND METHODS FOR PORTAL AND WEB SERVER ADMINISTRATION,U.S. Provisional Patent Application No. 60/451,174, Inventors:Christopher Bales, et al., filed on Feb. 28, 2003. (Attorney's

CROSS-REFERENCE TO RELATED APPLICATIONS

[0004] This application is related to the following co-pendingapplications which are each hereby incorporated by reference in theirentirety:

[0005] FEDERATED MANAGEMENT OF CONTENT REPOSITORIES, U.S. applicationSer. No. ______, Inventors: James Owen, et al., filed on ______.(Attorney's Docket No. BEAS-1360US1).

[0006] VIRTUAL REPOSITORY CONTENT MODEL, U.S. application Ser. No.______, Inventors: James Owen, et al., filed on . (Attorney's Docket No.BEAS-1361US0).

[0007] SYSTEM AND METHOD FOR A VIRTUAL CONTENT REPOSITORY, U.S.application Ser. No. ______, Inventors: James Owen, et al., filed on______. (Attorney's Docket No. BEAS-1363US0).

[0008] VIRTUAL CONTENT REPOSITORY APPLICATION PROGRAM INTERFACE, U.S.application Ser. No. ______, Inventors: James Owen, et al., filed on______. (Attorney's Docket No. BEAS-1370US0).

[0009] SYSTEM AND METHOD FOR SEARCHING A VIRTUAL REPOSITORY CONTENT,U.S. application Ser. No. ______, Inventor: Gregory Smith, filed on______. (Attorney's Docket No. BEAS-1365US0).

[0010] VIRTUAL CONTENT REPOSITORY BROWSER, U.S. application Ser. No.______, Inventors: Jalpesh Patadia, et al., filed on ______. (Attorney'sDocket No. BEAS-1362US0).

COPYRIGHT NOTICE

[0011] A portion of the disclosure of this patent document containsmaterial which is subject to copyright protection. The copyright ownerhas no objection to the facsimile reproduction by anyone of the patentdocument or the patent disclosure, as it appears in the Patent andTrademark Office patent file or records, but otherwise reserves allcopyrights whatsoever.

FIELD OF THE DISCLOSURE

[0012] The present invention disclosure relates to content management,and in particular, a system and method for integrating disparate contentrepositories.

BACKGROUND

[0013] Content repositories manage and provide access to large datastores such as a newspaper archives, advertisements, inventories, imagecollections, etc. A content repository can be a key component of a Webapplication such as a Web portal, which must quickly serve up differenttypes of content in response to a particular user's requests. However,difficulties can arise when trying to integrate more than one vendor'scontent repository. Each may have its own proprietary applicationprogram interface (API), conventions for manipulating content, and dataformats. Performing a search across different repositories, for example,could require using completely different search mechanisms andconverting each repository's search results into a common format.Furthermore, each time a repository is added to an application, theapplication software must be modified to accommodate these differences.

BRIEF DESCRIPTION OF THE DRAWINGS

[0014]FIG. 1 is an illustration of a virtual content managementframework in one embodiment of the invention.

[0015]FIG. 2 is an illustration of functional layers in one embodimentof the invention.

[0016]FIG. 3 is an illustration of objects used in connecting arepository to a virtual content repository in one embodiment of theinvention.

[0017]FIG. 4 is an exemplary content model in one embodiment of theinvention.

[0018]FIG. 5 is an exemplary service model in one embodiment of theinvention.

[0019]FIG. 6 is an illustration of NopeOps service interaction in oneembodiment of the invention.

[0020]FIG. 7 is an illustration of a virtual content repository browserin one embodiment of the invention.

[0021]FIG. 8 is an illustration of a content editor in one embodiment ofthe invention.

[0022]FIG. 9 is an illustration of a schema editor in one embodiment ofthe invention.

[0023]FIG. 10 is an illustration of a property editor in one embodimentof the invention.

DETAILED DESCRIPTION

[0024] The invention is illustrated by way of example and not by way oflimitation in the figures of the accompanying drawings in which likereferences indicate similar elements. It should be noted that referencesto “an” or “one” embodiment in this disclosure are not necessarily tothe same embodiment, and such references mean at least one.

[0025] In the following description, various aspects of the presentinvention will be described. However, it will be apparent to thoseskilled in the art that the present invention may be practiced with onlysome or all aspects of the present invention. For purposes ofexplanation, specific numbers, materials and configurations are setforth in order to provide a thorough understanding of the presentinvention. However, it will be apparent to one skilled in the art thatthe present invention may be practiced without the specific details. Inother instances, well-known features are omitted or simplified in ordernot to obscure the present invention.

[0026] Parts of the description will be presented in data processingterms, such as data, selection, retrieval, generation, and so forth,consistent with the manner commonly employed by those skilled in the artto convey the substance of their work to others skilled in the art. Aswell understood by those skilled in the art, these quantities take theform of electrical, magnetic, or optical signals capable of beingstored, transferred, combined, and otherwise manipulated throughelectrical and/or optical components of a processor and its subsystems.

[0027] Various operations will be described as multiple discrete stepsin turn, in a manner that is most helpful in understanding the presentinvention, however, the order of description should not be construed asto imply that these operations are necessarily order dependent. Inparticular, these operations need not be performed in the order ofpresentation.

[0028] Various embodiments will be illustrated in terms of exemplaryclasses and/or objects in an object-oriented programming paradigm. Itwill be apparent to one skilled in the art that the present inventioncan be practiced using any number of different classes/objects, notmerely those included here for illustrative purposes. Furthermore, itwill also be apparent that the present invention is not limited to anyparticular software programming language or programming paradigm.

[0029]FIG. 1 is an illustration of a virtual content managementframework in one embodiment of the invention. A content repository 108is a searchable data store. Such systems can relate structured contentand unstructured content (e.g., digitally scanned paper documents,eXtensible Markup Language, Portable Document Format, Hypertext MarkupLanguage, electronic mail, images, video and audio streams, raw binarydata, etc.) into a searchable corpus. Content repositories can becoupled to or integrated with content management systems. Contentmanagement systems provide for content life cycle management (e.g.versioning), content review and approval, automatic contentclassification, event-driven content processing, process tracking andcontent delivery to other systems. For example, if a user fills out aloan application on a web portal, the web portal can forward theapplication to a content repository which, in turn, can contact a banksystem, receive notification of loan approval, update the loanapplication in the repository and notify the user by rendering theapproval information in a format appropriate for the web portal.

[0030] A virtual or federated content repository (hereinafter referredto as “VCR”) 100 is a logical representation of one or more individualcontent repositories 108 such that they appear and behave as a singlecontent repository from an application program's standpoint. This isaccomplished in part by use of an API (application program interface)104 and an SPI (service provider interface) 102. An API describes how anapplication program, library or process can interface with some programlogic or functionality. By way of a non-limiting illustration, a processcan include a thread, a server, a servlet, a portlet, a distributedobject, a web browser, or a lightweight process. An SPI describes how aservice provider (e.g., a content repository) can be integrated into asystem of some kind. SPI's are typically specified as a collection ofclasses/interfaces, data structures and functions that work together toprovided a programmatic means through which a service can be accessedand utilized. By way of a non-limiting example, APIs and SPIs can bespecified in an object-oriented programming language, such as Java™(available from Sun Microsystems, Inc. of Mountain View, Calif.) and C#(available from Microsoft Corp. of Redmond, Wash.). The API and SPI canbe exposed in a number of ways, including but not limited to staticlibraries, dynamic link libraries, distributed objects, servers,class/interface instances, etc.

[0031] In one embodiment, the API presents a unified view of allrepositories to application programs and enables them to navigate,perform CRUD (create, read, update, and delete) operations, and searchacross multiple content repositories as though they were a singlerepository. Content repositories that implement the SPI can “plug into”the VCR. The SPI includes a set of interfaces and services thatrepositories can implement and extend including schema management,hierarchy operations and CRUD operations. The API and SPI share acontent model 106 that represents the combined content of allrepositories 108 as a hierarchical namespace of nodes (or hierarchy).Given a node N, nodes that are hierarchically inferior to N are referredto as children of N whereas nodes that are hierarchically superior to Nare referred to as parents of N. The top-most level of the hierarchy iscalled the federated root. There is no limit to the depth of thehierarchy.

[0032] In one embodiment, content repositories can be children of thefederated root. Each content repository can have child nodes. Nodes canrepresent hierarchy information or content. Hierarchy nodes serve as acontainer for other nodes in the hierarchy akin to a file subdirectoryin a hierarchical file system. Content nodes can have properties. In oneembodiment, a property associates a name with a value of some kind. Byway of a non-limiting illustration, a value can be a text string, anumber, an image, an audio/visual presentation, binary data, etc. Eithertype of node can have a schema associated with it. A schema describesthe data type of one or more of a node's properties.

[0033]FIG. 2 is an illustration of functional layers in one embodimentof the invention. API 200 is layered on top of SPI 202. The SPI layerisolates direct interaction with repositories 212 from the API. In oneembodiment, this can be accomplished at run-time wherein the API librarydynamically links to or loads the SPI library. In another embodiment,the SPI can be part of a server process such that the API and the SPIcan communicate over a network. The SPI can communicate with therepositories using any number of means including, but not limited to,shared memory, remote procedure calls and/or via one or moreintermediate server processes.

[0034] Referring again to FIG. 2 and by way of a non-limiting example,content mining facilities 204, portlets 206, tag libraries 208,applications 210, and other libraries 218 can all utilize the API tointeract with a VCR. Content mining facilities can include services forautomatically extracting content from the VCR based on parameters.Portlet and Java ServerPages™ tag libraries enable portals to interactwith the VCR and surface its content on web pages. (Java ServerPages isavailable from Sun Microsystems, Inc.) In addition, application programsand other libraries can be built on top of the API.

[0035] In one embodiment, the API can include optimizations to improvethe performance of interacting with the VCR. One or more content caches216 can be used to buffer search results and recently accessed nodes.Content caches can include node caches and binary caches. A node cachecan be used to provide fast access to recently accessed nodes. A binarycache can be used to provide fast access to the data associated witheach node in a node cache. The API can also provide a configurationfacility 214 to enable applications, tools and libraries to configurecontent caches and the VCR. In one embodiment, this facility can beimplemented as a Java Management Extension (available from SunMicrosystems, Inc.). Exemplary configuration parameters are provided inTable 1. TABLE 1 Exemplary Configuration Parameters CONFIGURATIONPARAMETERS Active state for a binary cache of a repository (i.e., turnthe cache on or off). Maximum number of entries for a binary cache of arepository. Time-to-live for entries in a binary cache of a repository.Repository name. Active state for a node cache of a repository (i.e.,turn the cache on or off). Max entries for a node cache of a repository.Time-to-live for entries in a node cache of a repository. Password andusername for a repository. Read-only attribute for the repository.

[0036]FIG. 3 is an illustration of objects used in connecting arepository to a VCR in one embodiment of the invention. In oneembodiment, objects implementing API interface RepositoryManager 302 canserve as an representation of a VCR from an application program'sstandpoint. A RepositoryManager connect( ) method attempts to connectall available repositories with a current user's credentials to the VCR.By way of a non-limiting example, credentials in one embodiment canbased on the Java™ Authentication and Authorization Service (availablefrom Sun Microsystems, Inc.). Those of skill in the art will recognizethat many authorization schemes are possible without departing from thescope and spirit of the present embodiment. Each available contentrepository is represented by an SPI Repository object 306-310. TheRepositoryManager object invokes a connect( ) method on a set ofRepository objects. In one embodiment, a RepositorySession object (notshown) can be instantiated for each content repository to which aconnection is attempted. In one embodiment, the RepositoryManagerconnect( ) method can return an array of the RepositiorySessions to theapplication program, one for each repository for which a connection wasattempted. Any error in the connection procedure can be described by theRepositorySession object's state. In another embodiment, theRepositoryManager connect( ) method can connect to a specific repositoryusing a current user's credentials and a given repository name. In oneembodiment, the name of a repository can be a URI (uniform resourceidentifier).

[0037]FIG. 4 is an exemplary content model in one embodiment of theinvention. The content model is shared between the API and the SPI. Eachbox in FIG. 2 represents a class or an interface. Hollow tipped arrowsconnecting boxes indicate inheritance relationships wherein theclass/interface from which the arrows emanate inherit from theclass/interface to which the arrows point. Solid tipped arrows indicatethat the objects of the class/interface from which the arrows emanatecan contain or have references (e.g., pointers or addresses) to objectsof the class/interface to which the arrows point. In one embodiment,each object in a VCR has an identifier that uniquely identifies it. Anidentifier can be represented by an ID 400 (or id). An id can containthe name of a content repository and a unique id provided to it by therepository. In one embodiment, the id class/interface can be madeavailable through a common super class/interface 414 that can provideservices such as serialization, etc.

[0038] In one embodiment, content and hierarchy nodes can be representedby a Node 402 (or node). A node has a name, an id, and can also includea path that uniquely specifies an the node's location in the VCRhierarchy. By way of a non-limiting example, the path can be in aUnix-like directory path format such as ‘/a/b/c’ where ‘/’ is afederated root, ‘a’ is a repository, ‘b’ is a node in the ‘a’repository, and ‘c’ is the node's name. The Node class provides methodsby with a node's parent and children can be obtained. This is useful forapplications and tools that need to traverse the VCR hierarchy (e.g.,browsers). Nodes can be associated with zero or more Property 404objects (or properties). A property can have a name and zero or morevalues 406. In one embodiment, a property's name is unique relative tothe node to which the property is associated. A Value 406 can representany value, including but not limited to binary, Boolean, date/time,floating point, integer or string values. If a property has more thanone value associated with it, it is referred to as “multi-valued”.

[0039] A node's properties can be described by a schema. A schema can bereferred to as “metadata” since it does not constitute the content (or“data”) of the VCR per se. Schemas can be represented by an ObjectClass408 object and zero or more PropertyDefinition 410 objects. AnObjectClass has a schema name that uniquely identifies it within acontent repository. A node can refer to a schema using the ObjectClassname. In another embodiment, a content node can define its own schema byreferencing an ObjectClass object directly. In one embodiment, there isone PropertyDefinition object for each of a node's associated Propertyobjects. PropertyDefinition objects define the shape or type ofproperties. Schemas can be utilized by repositories and tools thatoperate on VCRs, such as hierarchical browsers. By way of a non-limitingexample, a hierarchy node's schema could be used to provide informationregarding its children or could be used to enforce a schema on them. Byway of a further non-limiting example, a VCR browser could use a contentnode's schema in order to properly display the node's values.

[0040] In one embodiment, a PropertyDefinition can have a name and candescribe a corresponding property's data type (e.g., binary, Boolean,string, double, calendar, long, reference to an external data source,etc.), whether it is required, whether it is read-only, whether itprovides a default value, and whether it specifies a property choicetype. A property choice can indicate if a property is a singleunrestricted value, a single restricted value, a multiple unrestrictedvalue, or a multiple restricted value. Properties that are single haveonly one value whereas properties that are multiple can have more thanone value. If a property is restricted, its value(s) are chosen from afinite set of values. But if a property is unrestricted, any value(s)can be provided for it. PropertyChoice objects 412 can be associatedwith a PropertyDefinition object to define a set of value choices in thecase where the PropertyDefinition is restricted. A choice can bedesignated as a default value, but only one choice can be a default fora given PropertyDefinition.

[0041] A PropertyDefinition object may also be designated as a primaryproperty. By way of a non-limiting example, when a schema is associatedwith a node, the primary property of a node can be considered itsdefault content. The isprimary( ) method of the PropertyDefinition classreturns true if a PropertyDefinition object is the primaryPropertyDefinition. By way of a further non-limiting example, if a nodecontained a binary property to hold an image, it could also contain asecond binary property to represent a thumbnail view of the image. Ifthe thumbnail view was the primary property, software applications suchas browser could display it by default.

[0042]FIG. 5 is an exemplary service model in one embodiment of theinvention. Each box in FIG. 5 represents a class or an interface. Adashed arrow indicates that the interface from which the arrow emanatescan produce at run-time objects implementing the classes to which thearrow points. A content repository's implementation of the SPI isresponsible for mapping operations on the content model to theparticulars of a given content repository. Repository interface 500represents a content repository and facilitates connecting to it. TheRepository has a connect( ) method that returns an object of type Ticket502 (or ticket) if a user is authenticated by the repository. In oneembodiment, tickets are intended to be light-weight objects. As such,one or more may be created and possibly cached for each client/softwareapplication accessing a given repository.

[0043] A ticket can utilize a user's credentials to authorize a service.In one embodiment, a ticket can be the access point for the followingservice interfaces: NodeOps 508, ObjectClassOps 506, and SearchOps 510.An application program can obtain objects that are compatible with theseinterfaces through the API RepositoryManager class. The NodeOpsinterface provides CRUD methods for nodes in the VCR. Nodes can beoperated on based on their id or through their path in the nodehierarchy. Table 2 summarizes NodeOp class functionality exposed in theAPI. TABLE 2 NodeOps Functionality NodeOps FUNCTIONALITY Update a givennode's properties and property definitions. Copy a given node to a newlocation in a given hierarchy along with all its descendants. Create anew content node underneath a given parent. Create a new hierarchy nodeunderneath a given parent. Perform a full cascade delete on a givennode. Retrieve all the nodes in a given node's path including itself.Retrieve content node children for the given parent node. Retrievehierarchy node children for the given parent node. Retrieve a node basedon its ID. Retrieve a node based on its path. Retrieve the childrennodes for the given hierarchy node. Retrieve all the nodes with a givenname. Retrieve the Binary data for given node and property ids. Moves anode to a new location in the hierarchy along with all its descendants.Remove the ObjectClass from a given node. Renames a given node andimplicitly all of its descendants paths.

[0044]FIG. 6 is an illustration of NopeOps service interaction in oneembodiment of the invention. Application 600 utilizes a NodeOps object602 provided by the API which in turn utilizes one or more NodeOpsobjects 606-610 provided by an SPI Ticket. Each repository 612-616 isrepresented by a NodeOps object. When the API NodeOps 602 receives arequest to perform an action, it maps the request to one or more SPINodeOps objects 606-610 which in turn fulfill the request using theirassociated repositories. In this way, applications and librariesutilizing the API see a the VCR rather than individual contentrepositories.

[0045] As with the NodeOps service, there is one SPI ObjectClassOpsobject per repository and a single API ObjectClassOps object. The APIObjectClassOps object maps requests to one or more SPI ObjectClassOpswhich in turn fulfill the requests using their respective repositories.Through this service, ObjectClass and PropertyDefinition objects can beoperated on based on their id or through their path in the nodehierarchy. Table 3 summarizes ObjectClassOps class functionality exposedin the API. TABLE 3 ObjectClassOps Functionality ObjectClassOpsFUNCTIONALITY Create an ObjectClass, create PropertyDefinition(s) andassociate them with the ObjectClass. Add a given PropertyDefinition toan ObjectClass. Delete an ObjectClass. Delete a PropertyDefinition.Retrieve an ObjectClass with a given id. Retrieve all ObjectClass(es)available for all content repositories a given user is currentlyauthenticated for. Retrieve all of the ObjectClass(es) available for agiven content repository. Retreive a BinaryValue for the givenPropertyChoice. Retreive a PropertyDefinition. Retrieve allPropertyDefinitions for the given ObjectClass. Rename the givenObjectClass. Updates the given PropertyDefinition.

[0046] As with the NodeOps and ObjectClassOps services, there is one SPISearchOps object per repository and a single API SearchOps object. TheAPI SearchOps object maps requests to one or more SPI SearchOps which inturn fulfill the requests using their respective repositories. Amongother things, the SearchOps services allows applications and librariesto search for properties and/or values throughout the entire VCR. In oneembodiment, searches can be conducted across all Property, Value,BinaryValue, ObjectClass, PropertyChoice and PropertyDefinitions objectsin the VCR. Search expressions can include but are not limited to one ormore logical expressions, Boolean operators, nested expressions, objectnames, function calls, mathematical functions, mathematical operators,string operators, image operators, and Structured Query Language (SQL).Table 4 summarizes SearchOps class functionality exposed in the API.TABLE 4 Exemplary SearchOps Functionality SearchOps FUNCTIONALITYFlushes all nodes inside a content cache. Flushes a specified node froma content cache. Performs a search with the given search expression.Updates a content cache's attributes. Updates a content cache's activestate. Updates a content cache's max entries. Updates a content cache'stime-to-live attribute.

[0047]FIG. 7 is an illustration of a VCR browser in one embodiment ofthe invention. A VCR browser 700 can include one or more tools builtatop the API and has a graphical user interface (GUI). In oneembodiment, the browser can be rendered using Microsoft Windows®(available from Microsoft, Corp.). In yet another embodiment, thebrowser can be implemented as a web portal. Browser window 700 includesa navigation pane 702 and a context-sensitive editor window 704. Thenavigation pane displays a hierarchical representation of a VCR havingone content repository (“BEA Repository”) which itself has fourhierarchy nodes (“HR”, “Images”, “Marketing”, and “Products”). Selectionof a hierarchy node can cause its children to be rendered beneath it inthe navigation pane and cause an appropriate editor to be displayed inthe editor window. Selection may be accomplished by any means, includingbut not limited to mouse or keyboard input, voice commands, physicalgestures, etc. In this case, the VCR 706 is selected and a repositoryconfiguration editor is displayed in the editor window. The editorallows a user to change the configuration parameters (see Table 1) ofthe VCR. In one embodiment, configuration parameters are manipulated viaJava Management Extensions (see FIG. 1).

[0048]FIG. 8 is an illustration of a content editor in one embodiment ofthe invention. Navigation pane 802 is in “content” mode 812 such that itselectively filters out nodes that define only schemas. Content node 806(“Laptop”) has been selected. Node 806 is a child of hierarchy node“Products”, which itself is a child of repository “BEA Repository”.Selection of node 806 causes a corresponding content node editor to berendered in editor window 804. The editor displays the current valuesfor the selected node. The content type 814 indicates that the schemafor this node is named “product”. In this example, the node has fiveproperties: “Style”, “Description”, “Color”, “SKU” and “Image”. A useris allowed to change the value associated with these properties andupdate the VCR (via the update button 808), or remove the node from theVCR (via the remove button 810).

[0049]FIG. 9 is an illustration of a schema editor in one embodiment ofthe invention. Navigation pane 902 is in “type” mode 910 such that itonly displays nodes that have schemas but no content. Schema node 906(“product”) has been selected. Node 906 is a child of repository “BEARepository”. Selection of node 906 causes a corresponding schema editorto be rendered in editor window 904. The editor displays the currentschema for the selected node (e.g., derived from ObjectClass,PropertyDefinition, PropertyChoice objects). In this example, the nodehas five property definitions: “Style”, “Description”, “Color”, “SKU”and “Image”. For each property, the editor displays an indication ofwhether it is the primary property, its data type, its default value,and whether it is required. A property can be removed from a schema byselecting the property's delete button 912. A property can be added byselecting the “add property” button 908. A property's attributes can bechanged by selecting its name 914 in the editor window or the navigationpane 906 (see FIG. 10).

[0050]FIG. 10 is an illustration of a property editor in one embodimentof the invention. The schema named “product” is being edited. Schemaproperties definitions are listed beneath their schema name in thenavigation pane 1002. Schema property 1008 (“color”) has been selected.The editor window 1004 displays the property's current attributes. Thename of the attribute (e.g., “color”), whether the attribute is requiredor not, whether it is read-only, whether it is the primary property, itsdata type, default value(s), and whether the property is single/multiplerestricted/unrestricted can be modified. Changes to the a property'sattributes can be saved by selecting the update button 1006.

[0051] One embodiment may be implemented using a conventional generalpurpose or a specialized digital computer or microprocessor(s)programmed according to the teachings of the present disclosure, as willbe apparent to those skilled in the computer art. Appropriate softwarecoding can readily be prepared by skilled programmers based on theteachings of the present disclosure, as will be apparent to thoseskilled in the software art. The invention may also be implemented bythe preparation of integrated circuits or by interconnecting anappropriate network of conventional component circuits, as will bereadily apparent to those skilled in the art.

[0052] One embodiment includes a computer program product which is astorage medium (media) having instructions stored thereon/in which canbe used to program a computer to perform any of the features presentedherein. The storage medium can include, but is not limited to, any typeof disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive,and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs,flash memory devices, magnetic or optical cards, nanosystems (includingmolecular memory ICs), or any type of media or device suitable forstoring instructions and/or data.

[0053] Stored on any one of the computer readable medium (media), thepresent invention includes software for controlling both the hardware ofthe general purpose/specialized computer or microprocessor, and forenabling the computer or microprocessor to interact with a human user orother mechanism utilizing the results of the present invention. Suchsoftware may include, but is not limited to, device drivers, operatingsystems, execution environments/containers, and user applications.

[0054] The foregoing description of the preferred embodiments of thepresent invention has been provided for the purposes of illustration anddescription. It is not intended to be exhaustive or to limit theinvention to the precise forms disclosed. Many modifications andvariations will be apparent to the practitioner skilled in the art.Embodiments were chosen and described in order to best describe theprinciples of the invention and its practical application, therebyenabling others skilled in the art to understand the invention, thevarious embodiments and with various modifications that are suited tothe particular use contemplated. It is intended that the scope of theinvention be defined by the following claims and their equivalents.

What is claimed is:
 1. A memory for storing data for access by anapplication program being executed on a computer system, comprising: adata structure stored in said memory, the data structure including orreferring to: a name; a content repository identifier; a plurality ofproperties; a plurality of property definitions associated with theplurality of properties; and wherein the data structure is logicallypart of a virtual content repository (VCR), and wherein the VCRrepresents at least one content repository.
 2. The memory of claim 1wherein the content repository identifier comprises: a repository name;and a content identifier that is unique for the content repository. 3.The memory of claim 1, further comprising: a reference to a parent datastructure.
 4. The memory of claim 1 wherein: a property is anassociation between a name and at least one value; and wherein the atleast one value can be stored in one of the at least one contentrepositories.
 5. The memory of claim 4 wherein: the at least one valuecan be a text string, a number, an image, an audio/visual presentation,or binary data.
 6. The memory of claim 1 wherein: a property definitioncan specify at least one of the following for a property: propertychoices; a reference; a data type; whether the property is mandatory;whether the property is multi-valued; whether the property is primary;whether the property is read-only; and whether the property isrestricted.
 7. The memory of claim 1 wherein: the data structure ishierarchically related to other data structures and the at least onecontent repository.
 8. The memory of claim 7 wherein: the data structureis hierarchically inferior to the at least one content repository.
 9. Acomputer readable medium containing a data structure for representinginformation in a virtual content repository (VCR), said data structurecomprising: a name; a content repository identifier; a plurality ofproperties; a plurality of property definitions associated with theplurality of properties; and wherein the data structure is logicallypart of the VCR, and wherein the VCR represents at least one contentrepository.
 10. The computer readable medium of claim 9 wherein thecontent repository identifier comprises: a repository name; and acontent identifier that is unique for the content repository.
 11. Thecomputer readable medium of claim 9, further comprising: a reference toa parent data structure.
 12. The computer readable medium of claim 9wherein: a property is an association between a name and at least onevalue; and wherein the at least one value can be stored in one of the atleast one content repositories.
 13. The computer readable medium ofclaim 12 wherein: the at least one value can be a text string, a number,an image, an audio/visual presentation, or binary data.
 14. The computerreadable medium of claim 9 wherein: a property definition can specify atleast one of the following for a property: property choices; areference; a data type; whether the property is mandatory; whether theproperty is multi-valued; whether the property is primary; whether theproperty is read-only; and whether the property is restricted.
 15. Thecomputer readable medium of claim 9 wherein: the data structure ishierarchically related to other data structures and the at least onecontent repository.
 16. The computer readable medium of claim 15wherein: the data structure is hierarchically inferior to the at leastone content repository.
 17. A memory for storing virtual contentrepository (VCR) information for access by an application program beingexecuted on a computer system, comprising: a data structure stored insaid memory, the data structure including: a root node; a first set ofnodes wherein each node in the first set can be hierarchically relatedto at least one other node in the first set, and wherein all nodes inthe first set are hierarchically inferior to the root node; a second setof nodes associated with the first set of nodes, wherein the second setof nodes provides schema information for the first set of nodes; whereineach one of the first set of nodes can represent one of: 1) a nodecontainer; 2) repository content; and 3) a repository; and wherein eachone of the first set of nodes can be associated with the at least oneproperty.
 18. The memory of claim 17 wherein: the VCR represents one ormore content repositories as a single repository.
 19. The memory ofclaim 17 wherein: wherein each one of the first set of nodes has anidentifier that indicates its logical location in the hierarchy formedby the first set of nodes;
 20. The memory of claim 17 wherein: aproperty is an association between a name and at least one value. 21.The memory of claim 20 wherein: the at least one value can be a textstring, a number, an image, an audio/visual presentation, or binarydata.
 22. The memory of claim 17 wherein: a second node belonging to thesecond set of nodes can be associated with at least one propertydefinition.
 23. The memory of claim 22 wherein: a property definitioncan specify at least one of the following for a property: propertychoices; a reference; a data type; whether the property is mandatory;whether the property is multi-valued; whether the property is primary;whether the property is read-only; and whether the property isrestricted.
 24. The memory of claim 22 wherein: there is a propertydefinition for each property associated with each one of the first setof nodes.
 25. The memory of claim 17 wherein: a first node belonging tothe first set of nodes that represents a container can be hierarchicallyinferior to a second node belonging to the first set of nodes thatrepresents one of: 1) a container; and 2) a repository.
 26. The memoryof claim 17 wherein: a first node belonging to the first set of nodesthat represents a repository can be a direct child of the root node. 27.The memory of claim 17 wherein: a first node belonging to the first setof nodes that represents content can be a direct or indirect child of asecond node belonging to the first set of nodes that represents oneof: 1) repository content; 2) a container; and 3) a repository.
 28. Acomputer data signal embodied in a transmission medium, comprising: asegment including a name; a segment including a plurality of contentrepository identifiers; a segment including a plurality of properties; asegment including a property definition associated with the property;and wherein the segments can be combined to form a data structure thatis logically part of a virtual content repository (VCR), and wherein theVCR represents at least one content repository.
 29. The data signal ofclaim 28 wherein the content repository identifier comprises: arepository name; and a content identifier that is unique for the contentrepository.
 30. The data signal of claim 28, further comprising: asegment including a reference to a parent data structure.
 31. The datasignal of claim 28 wherein: a property is an association between a nameand at least one value; and wherein the at least one value can be storedin one of the at least one content repositories.
 32. The data signal ofclaim 31 wherein: the at least one value can be a text string, a number,an image, an audio/visual presentation, or binary data.
 33. The datasignal of claim 28 wherein: a property definition can specify at leastone of the following for a property: property choices; a reference; adata type; whether the property is mandatory; whether the property ismulti-valued; whether the property is primary; whether the property isread-only; and whether the property is restricted.
 34. The data signalof claim 28 wherein: the data structure is hierarchically related toother data structures and the at least one content repository.
 35. Thedata signal of claim 34 wherein: the data structure is hierarchicallyinferior to the at least one content repository.
 36. A computer datasignal embodied in a transmission medium, comprising: a segmentincluding a root node; a segment including a first set of nodes whereineach node in the first set can be hierarchically related to at least oneother node in the first set, and wherein all nodes in the first set arehierarchically inferior to the root node; a segment including a secondset of nodes, wherein the second set of nodes provides schemainformation for the first set of nodes; wherein each one of the firstset of nodes can represent one of: 1) a node container; 2) repositorycontent; and 3) a repository; and wherein each one of the first set ofnodes is associated with a plurality of properties.
 37. A memory forstoring data for access by an application program being executed on acomputer system, comprising: a first object to provide a first group ofservices related to interacting with a hierarchical namespace; aplurality of second objects to provide a second group of servicesrelated to associating information with the first object; a plurality ofthird objects to provide a third group of services related to describingattributes of the plurality of second objects; wherein the first objectis logically part of a virtual content repository (VCR), and wherein theVCR represents at least one content repository.
 38. The memory of claim37 wherein the first group of services comprises: first functions thatenable associating the plurality of first objects with locations in thenamespace.
 39. The memory of claim 37 wherein the second group ofservices comprises: second functions that enable creating, reading,updating and deleting the information.
 40. The memory of claim 37wherein the third group of services comprises: third functions thatenable specifying at least one of the following for the plurality ofsecond objects: property choices; a reference; a data type; whether theproperty is mandatory; whether the property is multi-valued; whether theproperty is primary; whether the property is read-only; and whether theproperty is restricted.
 41. The memory of claim 37 further comprising: aplurality of fourth objects to specify locations of the plurality offirst objects in the namespace.
 42. The memory of claim 41 wherein eachof the plurality of fourth objects includes: a content repository name;and a content identifier that is unique for the content repository. 43.The memory of claim 37 wherein each of the plurality of first objectsincludes: a reference to a parent object.
 44. The memory of claim 37,further comprising: a fifth object to provide a fifth set of servicesrelated to searching the VCR;
 45. The memory of claim 37 wherein: eachof the plurality of second objects associates a name and at least onevalue; and wherein the at least one value can be stored in one of the atleast one content repository.
 46. The memory of claim 45 wherein: the atleast one value can be a text string, a number, an image, anaudio/visual presentation, or binary data.
 47. The memory of claim 37wherein: each of the plurality of first objects is hierarchicallyrelated to other objects and to the at least one content repository. 48.The memory of claim 37, further comprising: a sixth object to provide asixth set of services related to configuring the VCR.
 49. A computerdata signal embodied in a transmission medium, comprising: a segmentincluding a first object to provide a first set of services related tointeracting with a hierarchical namespace; a segment including aplurality of second objects to provide a second group of servicesrelated to associating information with the first object; a segmentincluding a plurality of third objects to provide a third group ofservices related to describing attributes of the second object; whereinthe first object is logically part of a virtual content repository(VCR), and wherein the VCR represents at least one content repository.